// license-header java merge-point
/**
 * This is only generated once! It will never be overwritten.
 * You can (and have to!) safely modify it by hand.
 */
package edu.uoc.tfc.dbmodel;
/**
 * @see edu.uoc.tfc.dbmodel.Asseguradora
 */
public class AsseguradoraDaoImpl
    extends edu.uoc.tfc.dbmodel.AsseguradoraDaoBase
{
    /**
     * @see edu.uoc.tfc.dbmodel.AsseguradoraDao#toAsseguradoraVO(edu.uoc.tfc.dbmodel.Asseguradora, edu.uoc.tfc.dto.AsseguradoraVO)
     */
    public void toAsseguradoraVO(
        edu.uoc.tfc.dbmodel.Asseguradora source,
        edu.uoc.tfc.dto.AsseguradoraVO target)
    {
        super.toAsseguradoraVO(source, target);
    }


    /**
     * @see edu.uoc.tfc.dbmodel.AsseguradoraDao#toAsseguradoraVO(edu.uoc.tfc.dbmodel.Asseguradora)
     */
    public edu.uoc.tfc.dto.AsseguradoraVO toAsseguradoraVO(final edu.uoc.tfc.dbmodel.Asseguradora entity)
    {
        return super.toAsseguradoraVO(entity);
    }


    /**
     * Retrieves the entity object that is associated with the specified value object
     * from the object store. If no such entity object exists in the object store,
     * a new, blank entity is created
     */
    private edu.uoc.tfc.dbmodel.Asseguradora loadAsseguradoraFromAsseguradoraVO(edu.uoc.tfc.dto.AsseguradoraVO asseguradoraVO)
    {
        edu.uoc.tfc.dbmodel.Asseguradora asseguradora = this.load(Long.valueOf(asseguradoraVO.getId()));
        if (asseguradora == null)
        {
            asseguradora = edu.uoc.tfc.dbmodel.Asseguradora.Factory.newInstance();
        }
        return asseguradora;
    }

    
    /**
     * @see edu.uoc.tfc.dbmodel.AsseguradoraDao#asseguradoraVOToEntity(edu.uoc.tfc.dto.AsseguradoraVO)
     */
    public edu.uoc.tfc.dbmodel.Asseguradora asseguradoraVOToEntity(edu.uoc.tfc.dto.AsseguradoraVO asseguradoraVO)
    {
        edu.uoc.tfc.dbmodel.Asseguradora entity = this.loadAsseguradoraFromAsseguradoraVO(asseguradoraVO);
        this.asseguradoraVOToEntity(asseguradoraVO, entity, true);
        return entity;
    }


    /**
     * @see edu.uoc.tfc.dbmodel.AsseguradoraDao#asseguradoraVOToEntity(edu.uoc.tfc.dto.AsseguradoraVO, edu.uoc.tfc.dbmodel.Asseguradora)
     */
    public void asseguradoraVOToEntity(
        edu.uoc.tfc.dto.AsseguradoraVO source,
        edu.uoc.tfc.dbmodel.Asseguradora target,
        boolean copyIfNull)
    {
        super.asseguradoraVOToEntity(source, target, copyIfNull);
    }

    /**
     * @see edu.uoc.tfc.dbmodel.AsseguradoraDao#findAsseguradoresByCriteria(edu.uoc.tfc.dto.CriteriaAsseguradoraVO)
     */
    public java.util.Collection findAsseguradoresByCriteria(edu.uoc.tfc.dto.CriteriaAsseguradoraVO criteria)
    {
        return this.findAsseguradoresByCriteria(TRANSFORM_NONE, criteria);
    }

    /**
     * @see edu.uoc.tfc.dbmodel.AsseguradoraDao#findAsseguradoresByCriteria(int, edu.uoc.tfc.dto.CriteriaAsseguradoraVO)
     */
    public java.util.Collection findAsseguradoresByCriteria(final int transform, final edu.uoc.tfc.dto.CriteriaAsseguradoraVO criteria)
    {
        return this.findAsseguradoresByCriteria(transform, -1, -1, criteria);
    }

    /**
     * @see edu.uoc.tfc.dbmodel.AsseguradoraDao#findAsseguradoresByCriteria(int, java.lang.String, int, int, edu.uoc.tfc.dto.CriteriaAsseguradoraVO)
     */
    public java.util.Collection findAsseguradoresByCriteria(final int transform, final int pageNumber, final int pageSize, final edu.uoc.tfc.dto.CriteriaAsseguradoraVO criteria)
    {
        try
        {
            edu.uoc.tfc.CriteriaSearch criteriaSearch = new edu.uoc.tfc.CriteriaSearch(super.getSession(false), edu.uoc.tfc.dbmodel.AsseguradoraImpl.class);
            criteriaSearch.getConfiguration().setFirstResult(criteria.getFirstResult());
            criteriaSearch.getConfiguration().setFetchSize(criteria.getFetchSize());
            criteriaSearch.getConfiguration().setMaximumResultSize(criteria.getMaximumResultSize());
            if (pageNumber > 0 && pageSize > 0)
            {
                criteriaSearch.getConfiguration().setFirstResult(new java.lang.Integer(calculateFirstResult(pageNumber, pageSize)));
                criteriaSearch.getConfiguration().setMaximumResultSize(new java.lang.Integer(pageSize));
            }
            edu.uoc.tfc.CriteriaSearchParameter parameter1 =
                new edu.uoc.tfc.CriteriaSearchParameter(
                    criteria.getNom(),
                    "nom", org.hibernate.criterion.MatchMode.ANYWHERE);
            criteriaSearch.addParameter(parameter1);
            edu.uoc.tfc.CriteriaSearchParameter parameter2 =
                new edu.uoc.tfc.CriteriaSearchParameter(
                    criteria.getActiva(),
                    "activa");
            criteriaSearch.addParameter(parameter2);
            java.util.List results = criteriaSearch.executeAsList();
            transformEntities(transform, results);
            return results;
        }
        catch (org.hibernate.HibernateException ex)
        {
            throw super.convertHibernateAccessException(ex);
        }
    }    
}